package com.admin.service;

import com.admin.service.vo.SysUser;
import org.springframework.stereotype.Service;

import java.util.List;


public interface SysUserService {

    /**
     * 创建用户
     * @param sysUser
     * @return
     */
    SysUser createSysUser(SysUser sysUser);

    /**
     * 根据主键查询
     * @param id
     * @return
     */
    SysUser queryById(String id);

    /**
     * 保存用户
     * @param sysUser
     * @return
     */
    int saveSysUser(SysUser sysUser);

    /**
     * 根据账号查询
     * @param account
     * @return
     */
    SysUser queryByAccount(String account);

    /**
     * 根据人员信息查询用户
     * @param personId
     * @param personIds
     * @param name
     * @param emial
     * @param idCard
     * @param phone
     * @return
     */
    List<SysUser> queryListByPersonInfo(String personId, List<String> personIds, String name, String emial, String idCard,
                                        String phone, boolean use);

    /**
     * 修改
     * @param sysUser
     * @return
     */
    int editionSysUser(SysUser sysUser);

    /**
     * 移除
     * @param sysUser
     * @return
     */
    int removeSysUser(SysUser sysUser);

    /**
     * 当前账号可用
     * @param account
     * @return
     */
    boolean canUseAccount(String account);

    /**
     * 当前用户可否使用
     * @param userId
     * @return
     */
    boolean canBeUse(String userId);

    /**
     *
     * @param personIds
     * @param userIds
     * @return 成功的 userIds
     */
    List<String> bindPerson(List<String> personIds, List<String> userIds);

    /**
     *
     * @param personIds
     * @return 成功的 userIds
     */
    List<String> unbindPerson(List<String> personIds);
}
